package com.soup.common.module.sys.mapper;

import com.soup.common.mapper.CustomMapper;
import com.soup.common.module.sys.data.MethodMenuResponse;
import com.soup.common.module.sys.entity.Menu;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * sys menu mapper
 *
 * @author zhaoyi
 */
public interface MenuMapper extends CustomMapper<Menu> {

    /**
     * 查询角色的下的子级菜单，不查询方法菜单
     *
     * @param parentMenuId 父级菜单id
     * @return 菜单列表
     */
    List<Menu> selecctChileMenus(@Param("parentMenuId") Integer parentMenuId);

    /**
     * 查询角色的下的子级菜单，不查询方法菜单
     *
     * @param parentMenuId 父级菜单id
     * @param roleId 角色id
     * @return 菜单列表
     */
    List<Menu> selecctRoleChileMenus(@Param("parentMenuId") Integer parentMenuId, @Param("roleId") Integer roleId);

    /**
     * 查询父级菜单下的方法菜单集合
     *
     * @param parentMenuId 父级菜单id
     * @return 方法菜单集合
     */
    List<MethodMenuResponse> selectMethodMenus(@Param("parentMenuId") Integer parentMenuId);

    /**
     * 查询父级菜单下的方法菜单集合
     *
     * @param parentMenuId 父级菜单id
     * @param roleId 角色id
     * @return 方法菜单集合
     */
    List<MethodMenuResponse> selectRoleMethodMenus(@Param("parentMenuId") Integer parentMenuId, Integer roleId);
}
